Traffic Sign Recognition Classifier


Loading traffic sign data


Step 1: Dataset Summary & Exploration

The pickled data is a dictionary with 4 key/value pairs:

Basic Summary of the Data Set

Exploratory visualization of the dataset

Traffic sign images preview for all the classes

Categories/classes distribution (in train/validation/test)

Pre-process the Data Set

Minimally, the image data should be normalized so that the data has mean zero and equal variance. An apporximation is done by centralizing and scaling impemented as a preprocessing layers of the neural network (see preprocessing_layers intialization in Model architecture section).

Here we will augment the data generating sample from random transformation applyied on the classes with few training examples/samples.

Optionally during the training data augmentation layers are used to alter the data making the model a bit more robust to some transformation change/range. (see training model section)

Generating and balancing data

Visualize generated samples per category

Design and Test a Model Architecture

Design and implement a deep learning model that learns to recognize traffic signs. Train and test your model on the German Traffic Sign Dataset.

Model requirements:

To meet specifications, the validation set accuracy will need to be at least 0.93.

There are various aspects to consider when thinking about this problem:

An example of a published baseline model on this problem.

Model Architecture

Le Net is chosen to be the baseline architecture. Augmentation and slightly variated architecture are evaluated for performance gain.

Add loss and compile model

Train, Validate and Test the Model

A validation set can be used to assess how well the model is performing. A low accuracy on the training and validationsets imply underfitting. A high accuracy on the training set but low accuracy on the validation set implies overfitting.

Shuffling

Setting-up callbacks

Training

Training summary visualization

Architecture/model comparison

Select the "best" model (based on validation)

Inspect validation perf.

Misclassification stats.

Misclassified sample visualization.

Visualizing the most freq. misclassified categories/classes


Step 3: Test a Model on New Images

To give yourself more insight into how your model is working, download at least five pictures of German traffic signs from the web and use your model to predict the traffic sign type.

You may find signnames.csv useful as it contains mappings from the class id (integer) to the actual sign name.

Load and Output the Images

Predict the Sign Type for Each Image

Analyze Performance

Output Top 5 Softmax Probabilities For Each Image Found on the Web


Step 4 (Optional): Visualize the Neural Network's State with Test Images